package ejb.com.bbva.cbm.util.voucher;

import java.util.List;
import java.util.Locale;

import cbm.commons.UtilitarioFunciones;
import ejb.cbm.operatoria.bean.ChequeBean;

public class DatosVoucherDepositoCheque extends DatosVoucher {
	private String numeroCuenta;
	private String nombreTitular;
	private String divisa;
	private String moneda;
	private String montoTotal;
	private String cantidadCheques;
	private List<ChequeBean> lstCheques;
	private String simboloMoneda;
	
	public DatosVoucherDepositoCheque(){
		super(56, 0);
	}

	public String getSimboloMoneda() {
		return simboloMoneda;
	}

	public void setSimboloMoneda(String simboloMoneda) {
		this.simboloMoneda = simboloMoneda;
	}

	public String getNumeroCuenta() {
		return numeroCuenta;
	}

	public void setNumeroCuenta(String numeroCuenta) {
		this.numeroCuenta = numeroCuenta;
	}

	public String getNombreTitular() {
		return nombreTitular;
	}

	public void setNombreTitular(String nombreTitular) {
		this.nombreTitular = nombreTitular;
	}

	public String getDivisa() {
		return divisa;
	}

	public void setDivisa(String divisa) {
		this.divisa = divisa;
	}

	public String getMoneda() {
		return moneda;
	}

	public void setMoneda(String moneda) {
		this.moneda = moneda;
	}

	@Override
	public String generarCadenaImpresion() {
		
		StringBuilder impresionTexto = new StringBuilder();
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("--- DEPOSITO EN CHEQUE PROPIO BANCO ---", 45, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("FECHA", 6, ' ')).append(": ").
		append(UtilitarioFunciones.formatearFecha(UtilitarioFunciones.obtenerFechaActual(),"dd-MM-yyyy")).
		append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("CTA..", 6, ' ')).append(": ").
			append(UtilitarioFunciones.formatStringLEFT(this.numeroCuenta,20,' ')).append(" DIV: ").append(this.divisa).
			append(UtilitarioFunciones.SALTO_DE_LINEA);;
		
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("TIT..", 6, ' ')).append(": ").
			append(UtilitarioFunciones.formatStringLEFT(this.nombreTitular,50,' ')).
			append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append("REF..DEPOSITO EN CHEQUE PROPIO BANCO").append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		if(this.moneda.equals("EUR")){
			this.simboloMoneda = "EUR";
		}
		impresionTexto.append("TOT. DEPOSITO:").append("  "+this.simboloMoneda).append(" "+this.montoTotal).append("  CANT:DOCS:").append(this.cantidadCheques).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		/* Agregar los cheques*/
		impresionTexto.append("N. CHEQUE   NRO. CUENTA    BANCO IMPORTE").append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append("------------------------------------------").append(UtilitarioFunciones.SALTO_DE_LINEA);
		for(ChequeBean cheque : this.lstCheques){
			impresionTexto.append(cheque.getId().getNumerocheque()).append(" ");
			impresionTexto.append(cheque.getCodigooficinapago()+"-"+cheque.getNumeroCuenta()).append(" ");
			impresionTexto.append("CONTI").append(" ");
			impresionTexto.append(UtilitarioFunciones.formatStringRIGHT(UtilitarioFunciones.formatearNumeros(cheque.getImporte(),"#,##0.00", Locale.ENGLISH),9,' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		}
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("-----------------------", 45, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("FIRMA / D.N.I.:", 45, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		String glosa = generarGlosaOperacion();
		if(glosa != null && !glosa.trim().equals("")) {
			impresionTexto.append("GLOSA: ").append(glosa).append(UtilitarioFunciones.SALTO_DE_LINEA);
		}
		impresionTexto.append("CLAVE: ").append(generarClaveOperacion()).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append((UtilitarioFunciones.formatStringCENTER(oficinaNombre, 43, ' ')));
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		impresionTexto.append(UtilitarioFunciones.getFinalPagina());
		return impresionTexto.toString();
	}

	public String getMontoTotal() {
		return montoTotal;
	}

	public void setMontoTotal(String montoTotal) {
		this.montoTotal = montoTotal;
	}

	public String getCantidadCheques() {
		return cantidadCheques;
	}

	public void setCantidadCheques(String cantidadCheques) {
		this.cantidadCheques = cantidadCheques;
	}

	public List<ChequeBean> getLstCheques() {
		return lstCheques;
	}

	public void setLstCheques(List<ChequeBean> lstCheques) {
		this.lstCheques = lstCheques;
	}
}
